/*  ----------------------------------------------------------------------------
 *  Arello Mobile
 *  Fast 3d Engine
 *  ----------------------------------------------------------------------------
 * Except where otherwise noted, this work is licensed under
 * http://creativecommons.org/licenses/by/3.0
 */

#ifndef __NOISE_HARD_openal_CREATOR_H__
#define __NOISE_HARD_openal_CREATOR_H__

#include <noise/hard/Channel.h>
#ifdef IPHONE_VERSION
#include <WindowCreatorIphone.h>
#else
#include <WindowCreator.h>
#endif
#include <noise/hard/null/Creator.h>

namespace liba
{
namespace noise
{
	
class MusicChanger;
	
namespace hard
{
namespace openal
{

class Creator :
	 virtual public WindowCreator,
	 virtual public Manager::Creator,
	 virtual public null::Creator
{
public:
	Creator();
	~Creator();
	void life_cycle(double delta_time);

	//only one could be registered at a time;
#ifdef IPHONE_VERSION
	static void register_music_changer(MusicChanger * music_changer);
	static bool can_play_music();
	static void app_goes_background();
	static void app_goes_active();
#endif
};

} // namespace openal
} // namespace hard
} // namespace noise
} // namesapce liba
using namespace liba;

#endif //__NOISE_HARD_openal_CREATOR_H__